using BlueMarble.Genesis.Infrastructure;
using System.Windows;
using System;
using Microsoft.Practices.Composite.Regions;
using Microsoft.Practices.Composite.Events;

namespace BlueMarble.Genesis.Shell
{
    public class ViewModel : IShellViewModel
    {
        protected IRegionManager regionManager;
        protected IEventAggregator eventAggregator;

        public ViewModel(IShellView View, IRegionManager RegionManager, IEventAggregator EventAggregator)
        {
            this.regionManager = RegionManager;
            this.eventAggregator = EventAggregator;

            this.View = View;
            this.View.ViewModel = this;
        }

        public IShellView View { get; private set; }

        public IRegionManager RegionManager
        {
            get
            {
                return regionManager;
            }

            set
            {
                regionManager = value;
            }
        }
    }
}